package com.md.api.authentication;

import com.md.model.system.CommonResult;
import com.md.value.constants.ApiConstants;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @author 刘骄阳
 * 2023-02-25 2:00
 */
@Api(tags = {ApiConstants.MAC})
public interface MacApi {
  /**
   * 查询用户信息
   *
   * @param id 主键id
   * @return 用户信息
   */
  @PostMapping("/mac/query/users")
  @ApiOperation("查询用户信息")
  CommonResult<Users> queryUsersInfo(@RequestParam @ApiParam("主键id") Long id);


  /**
   * 查询接口信息
   *
   * @param url 接口路径
   * @return 接口信息
   */
  @PostMapping("/mac/query/apis")
  @ApiOperation("查询接口信息")
  CommonResult<Apis> queryApiInfo(@RequestParam @ApiParam("接口路径") String url);

  /**
   * 查询是否有权限
   *
   * @param apiId  apiId
   * @param roleId 角色Id
   * @return 是否有权限(true : 有权限 ; false : 无权限)
   */
  @PostMapping("/mac/query/auth")
  @ApiOperation("查询是否有权限")
  CommonResult<Boolean> queryHasAuth(@RequestParam @ApiParam("apiId") Long apiId,
                                     @RequestParam @ApiParam("角色Id") Long roleId);

}
